home *** CD-ROM | disk | FTP | other *** search
- Program Logweed; {weeds out records of less than specified time length}
-
- Type
- Datestring = string[8];
- CommentString = string[12];
-
- LogRec = Record
- usage: char; {usage type, i.e. business/personal}
- start_date_log : Datestring; {start date}
- start_time_log : Datestring; {start time}
- elapsed_log : Datestring; {elapsed time}
- comment : CommentString; {comment}
- end;
-
- Var
- logfile, weedfile : file of LogRec;
- realtime, weedtime: Real;
- log_data : LogRec;
- ch : char;
- i : integer;
-
- function exist(file_name: commentstring): boolean;
- var test_file: file;
- begin
- assign(test_file,file_name);
- {$I-} reset(test_file) {$I+};
- if (IOresult=0) then begin
- exist:=true;
- close(test_file);
- end
- else exist:=false;
- end; {function exist}
-
-
- Function elapsed_real_time(tempstring: Datestring): real;
- var
- temp, temptime : real;
- err : integer;
- begin
- val(copy(tempstring,1,2),temptime,err); {get hours}
- val(copy(tempstring,4,2),temp,err);
- temptime := temptime + (temp/60); {get fraction of hours from minutes}
- val(copy(tempstring,7,2),temp,err);
- temptime := temptime + (temp/3600); {get fraction of hours from seconds}
- elapsed_real_time := temptime;
- end;
-
-
- procedure get_weedtime;
- var
- temp : string[16];
- err : integer;
- begin
- repeat
- writeln;
- writeln('Enter minimum elapsed time for records, in decimal hours');
- write('(i.e. "0.1" for 6 minutes, "0.05" for 3 minutes): ');
- readln(temp);
- val(temp,weedtime,err);
- until err=0;
- end;
-
- Begin {program}
-
- lowvideo;
- clrscr;
- writeln;
- writeln('This program looks for "TIME.LOG" in the current directory');
- writeln('and removes files with elapsed times of less than the amount');
- writeln('you specify. The original file is saved as "TIME.BAK."');
- writeln;
- writeln('Press any key to proceed, ^C to abort....');
- read(kbd,ch);
-
- get_weedtime;
-
- If not exist('TIME.LOG') then
- begin
- writeln('Can''t find "TIME.LOG" in current directory.');
- halt;
- end;
- if exist('TIME.BAK') then
- begin
- assign(logfile,'TIME.BAK');
- erase(logfile);
- end;
- Assign(logfile,'TIME.LOG');
- Rename(logfile,'TIME.BAK');
- Reset(logfile);
- Assign(weedfile,'TIME.LOG');
- Rewrite(weedfile);
-
- for i := 0 to filesize(logfile)-1 do
- begin
- seek(logfile,i);
- read(logfile,log_data);
- if not (elapsed_real_time(log_data.elapsed_log)<weedtime) then
- write(weedfile,log_data)
- else
- begin
- writeln;
- writeln(log_data.start_date_log,' ',
- log_data.start_time_log,' ',
- log_data.elapsed_log,' ');
- writeln(log_data.comment);
- end;
- end;
- close(logfile);
- close(weedfile);
- writeln;
- writeln('Done... Any short-timers printed above were removed from the file.');
- writeln;
- End.